package z_exam;

/**
 * @Author: 海琳琦
 * @Date: 2022/3/16 22:36
 */
public class test2 {

    public static void main(String[] args) {
        double[] arr = {1.184,
                0.757,
                0.318,
                1.01,
                0.751,
                0.933,
                0.069,
        };
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]*180/Math.PI);
        }
        System.out.println();
    }

    public static void heapSort(int[] arr){
        int n = arr.length;
        //创建大根堆
        buildHeap(arr);
        while(n > 1){
            //将最后一个元素与第一个元素进行交换
            swap(arr, 0, --n);
            //重新向下调整堆
            heapify(arr, 0, n);
        }
    }

    public static void buildHeap(int[] arr){
        int n = arr.length;
        //从最后一个根节点的父节点开始调整堆
        for(int i = n / 2 - 1; i >= 0; i--){
            heapify(arr, i, n);
        }
    }

    public static void heapify(int[] arr, int i, int n){
        int left = i * 2 + 1;
        int right = i * 2 + 2;
        int maxIndex = i;
        if(left < n && arr[left] > arr[maxIndex]){
            maxIndex = left;
        }
        if(right < n && arr[right] > arr[maxIndex]){
            maxIndex = right;
        }
        //最大值index发生变化，向下重新调整堆
        if(maxIndex != i){
            //交换节点
            swap(arr, i, maxIndex);
            //调整堆
            heapify(arr, maxIndex, n);
        }
    }

    public static void swap(int[] arr, int i, int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
}
